Forex session - Opening Range- Jayy fixed updatedOpening Range (OR) for Forex 24 hour regular session. This is not for regular market day sessions addressed in a separate script.
This script fixes four issues:
syntax error when code compiles
messed up opening range the day after a holiday Monday
flaky plotting of the opening range and targets that required page reloading
TradingView problems with starting forex session at 1700 hours EST/EDT when using certain securities eg FX_IDC currently (Jan 2017)
Additions in his code are more options for trading range
Time compensation option for some securities that incorrectly start sessions at 1200 hrs instead of 1700 hrs NY time
- this glitch is likely temporary but present when this script update was created
More opening range time period choices
Opening Range Targets:
Opening Range Targets as per Leaf_West
Targets are set at 127% , 162%, 200 %, 262 %, 362%, 423%, 685%, 1109% and 1794% and this can be traded intraday using methods described here charts-by-leaf.com I also have some Leaf West PDFs that describe how the targets are set and how they are traded. There are others that use opening range.
The Time Session Glitch and the Fix:
The script will correctly default to 1700 hrs to 1700hrs EDT/EST session for FXCM.
Strangely some securities appear to erroneously start their session at 1200 hrs ie. My guess is that they are somehow tied to GMT+0 instead of New York time (GMT+5). See this for yourself by selecting EURUSD using the FXCM exchange (FX:EURUSD) and then EURUSD from the IDC exchange (FX_IDC:EURUSD). The FX-IDC session opening range starts 5 hours
before it actually should at 1700 hrs EDT/EST. To correct for this I have implemented an automatic fix (default) and a user selected "5 hour time shift adjust. ment needed on some securities".
There is also a 4 hour time shift button which might be necessary when New York reverts from Eastern Standard Time
to Eastern Daylight Time (1 hour difference) in March (and then back again in November). In the default auto adjust mode you will need to select the 1 hour time shift. That is if this glitch still exists at that time.
I have looked at other scripts, other than my own and where the script is available, that need to use information about the opening bar and all have the same time shift issue
What are the choices for Opening Range?
The dialogue box offers the standard TradingView options.
Also where you see Pick Opening Range 1 to 12 hours , SET TO 0 To USE LINE ABOVE TO DETERMINE OR LENGTH
As the note says a number other than 0 will override the standard options from the line above
The dialogue box below in offers choices by hours 1 to 12. A number greater than 12 will still only give
720 minutes (12 hours) for the length of Opening Range.
What sessions within the FOREX time-frame are available?
The default is 1700 hours to 1700 hours EST/EDT
Check any one (only one) of the time periods to change the opening range period to suit.
New York opens at 8:00 am to 5:00 pm EST (EDT)
Tokyo opens at 7:00 pm to 4:00 am EST (EDT)
Sydney opens at 5:00 pm to 2:00 am EST (EDT)
London opens at 3:00 am to 12:00 noon EST (EDT)
There is a build your own session (click the button to select)
The two lines for inputting session times are almost identical except that the second line starts the be the same as each other.
The default for the build your own session is 2200 hours to 2200 hours. As of the time of publishing this plots EURUSD FX-IDC just right. The GMT+5 and GMT+4 do not apply to this selection.
See my comments above on this strange aberration.
The script originated from work done by Chris Moody. It has changed significantly but there are remnants of that script lurking within.
Script is free to all - that way you can see what is inside
Cheers Jayy
Wyszukaj w skryptach "THE SCRIPT"
SMC Structures and Multi-Timeframe FVG PYSMC Structures and Multi-Timeframe FVG Indicator
Tip: For optimal performance, adjust the number of FVGs displayed per timeframe in the settings. On high-performance devices, up to 8 FVGs per timeframe can be used without issues. If you experience slowdowns, reduce to 3 or 4 FVGs per timeframe. If the chart flashes, disable indicators one by one to identify conflicts, or try using the TradingView Mobile or Windows App for a smoother experience.
Overview
This Pine Script indicator enhances market analysis by integrating Smart Money Concepts (SMC) with Fair Value Gaps (FVG) across multiple timeframes. It identifies trend continuations (Break of Structure, BOS) and trend reversals (Change of Character, CHoCH) while highlighting liquidity zones through FVG detection. The indicator includes eight customizable Moving Average (MA) curve templates, disabled by default, to complement SMC and FVG analysis. Its originality lies in combining multi-timeframe FVG detection with SMC structure analysis, providing traders with a cohesive tool to visualize price action patterns and liquidity zones efficiently.
Features and Functionality
1. Fair Value Gaps (FVG)
The indicator detects and displays bullish, bearish, and mitigated FVGs, representing liquidity zones where price inefficiencies occur. These gaps are dynamically updated based on price action:
Bullish FVG: Displayed in green when unmitigated, indicating potential upward liquidity zones.
Bearish FVG: Displayed in red when unmitigated, signaling potential downward liquidity zones.
Mitigated FVG: Shown in gray once the gap is partially filled by price action.
Fully Mitigated FVG: Automatically removed from the chart when the gap is fully filled, reducing visual clutter.
Users can customize the number of historical FVGs displayed via the settings, allowing focus on recent liquidity zones for targeted analysis.
2. SMC Structures
The indicator identifies key SMC price action patterns:
Break of Structure (BOS): Marked with gray lines, indicating trend continuation when price breaks a significant high or low.
Change of Character (CHoCH): Highlighted with yellow lines, signaling potential trend reversals when price fails to maintain the current structure.
High/Low Values: Blue lines denote the highest high and lowest low of the current structure, providing reference points for market context.
3. Multi-Timeframe FVG Analysis
A standout feature is the ability to analyze FVGs across multiple timeframes simultaneously. This allows traders to align higher-timeframe liquidity zones with lower-timeframe entries, improving trade precision. The indicator fetches FVG data from user-selected timeframes, displaying them cohesively on the chart.
4. Moving Average (MA) Templates
The indicator includes eight customizable MA curve templates in the Settings > Template section, disabled by default. These templates allow users to overlay MAs (e.g., SMA, EMA, WMA) to complement SMC and FVG analysis. Each template is pre-configured with different periods and types, enabling quick adaptation to various trading strategies, such as trend confirmation or dynamic support/resistance.
How It Works
The script processes price action to detect FVGs by analyzing three-candle patterns where a gap forms between the high/low of the first and third candles. Multi-timeframe data is retrieved using Pine Script’s request.security() function, ensuring accurate FVG plotting across user-defined timeframes. BOS and CHoCH are identified by tracking swing highs and lows, with logic to differentiate trend continuation from reversals. The MA templates are computed using standard Pine Script TA functions, with user inputs controlling visibility and parameters.
How to Use
Add to Chart: Apply the indicator to any TradingView chart.
Configure Settings:
FVG Settings: Adjust the number of historical FVGs to display (default: 10). Enable/disable specific FVG types (bullish, bearish, mitigated).
Timeframe Selection: Choose up to three timeframes for FVG analysis (e.g., 1H, 4H, 1D) to align with your trading strategy.
Structure Settings: Toggle BOS (gray lines) and CHoCH (yellow lines) visibility. Adjust sensitivity for structure detection if needed.
MA Templates: Enable MA curves via the Template section. Select from eight pre-configured MA types and periods to suit your analysis.
Interpret Signals:
Use green/red FVGs for potential entry points targeting liquidity zones.
Monitor gray lines (BOS) for trend continuation and yellow lines (CHoCH) for reversal signals.
Align multi-timeframe FVGs with BOS/CHoCH for high-probability setups.
Optionally, use MA curves for trend confirmation or dynamic levels.
Clean Chart Usage: The indicator is designed to work standalone. Ensure no conflicting scripts are applied unless explicitly needed for your strategy.
Why This Indicator Is Unique
Unlike standalone FVG or SMC indicators, this script combines both concepts with multi-timeframe analysis, offering a comprehensive view of market structure and liquidity. The addition of customizable MA templates enhances flexibility, while the dynamic removal of mitigated FVGs keeps the chart clean. This mashup is purposeful, as it integrates complementary tools to streamline decision-making for traders using SMC strategies.
Credits
This indicator builds on foundational SMC and FVG concepts from the TradingView community. Some open-source code was reused, and do performance enhancement as you guys can read the code. This type of indicators has inspiration was drawn from public domain SMC methodologies. All code is partly original with manual work on performance optimization in Pine Script.
Notes
Ensure your chart is clean (no unnecessary drawings or indicators) to maximize clarity.
The indicator is open-source, and traders are encouraged to review the code for deeper understanding.
For optimal use, test the indicator on a demo account to familiarize yourself with its signals.
Multi-Timeframe SMTSummery
The Multi-Timeframe SMT indicator is designed to identify and visualize Higher Timeframe (HTF) data on a Lower Timeframe (LTF) chart, allowing traders to see the broader market context without changing their current chart's resolution. It accurately draws pivots and SMT divergences from higher timeframes on the corresponding candles of your current lower timeframe chart.
Its core features include:
Multi-Timeframe Analysis: Configure and monitor pivots on up to four independent timeframes, from intraday to monthly.
Customizable Pivot Detection: Define the strength of pivots by adjusting the number of bars to the left and right.
SMT Divergence: Automatically identifies bullish and bearish SMT divergences by comparing the price action of the main chart symbol with a chosen correlated asset.
Early SMT Detection: A unique feature that monitors a lower "detection timeframe" to provide early warnings of potential SMT setups before they're confirmed on the main timeframe. Note that this early detection is only shown on timeframes equal to or lower than the "Detection timeframe" you have set.
Visual Cues & Alerts: Clear on-chart labels, lines, and fully customizable alerts notify you of confirmed pivots and SMT divergences, ensuring you don't miss key opportunities.
Important Nuance Regarding Pivot Label Display
Due to a self-imposed limit within this script's drawing management logic, the indicator might quickly reach its drawing capacity if you enable pivot crosses for multiple timeframes simultaneously. When this internal drawing limit is exceeded, the script is designed to automatically remove the oldest drawings to make space for new ones.
Therefore, to ensure optimal performance and visibility of the most recent and relevant pivots, it's highly recommended to only enable the "Show Pivot Crosses" option for one timeframe at a time. If you wish to view pivots for a different timeframe, simply disable the pivot crosses for the currently active timeframe and then enable them for your desired one. This approach prevents the rapid cycling and disappearance of pivot labels, providing a clearer and more stable visual experience.
In-Depth Explanation of the Logic
This script is built on two primary concepts: pivot points and Smart Money Technique (SMT) divergence. It systematically collects historical data on multiple timeframes, identifies pivots, and then compares them between two assets to find divergences.
Pivot Point Identification
A pivot is a turning point in the market. A pivot high is a candle that has a higher high than the candles to its immediate left and right. Conversely, a pivot low is a candle with a lower low than its neighbors.
How it Works in the Script:
The script tracks the highest high and lowest low for each period of the selected timeframe (e.g., for each 4-hour candle). When a new high-timeframe candle closes, it stores that high/low value and its bar index in an array. The checkForPivot() function then checks if a recently stored high or low qualifies as a pivot.
Key Inputs:
Left Strength (leftBars1): The number of candles to the left that must have a lower high (for a pivot high) or higher low (for a pivot low).
Right Strength (rightBars1): The number of candles to the right that must meet the same criteria.
For example, with Left Strength and Right Strength both set to 3, a pivot high is only confirmed when its high is greater than the highs of the 3 previous high-timeframe candles and the 3 subsequent high-timeframe candles. Increasing these values will identify more significant, longer-term pivots.
Smart Money Technique (SMT) Divergence
SMT Divergence is a concept popularized by The Inner Circle Trader (ICT). It occurs when two closely correlated assets fail to move in sync. For instance, if Asset A makes a higher high but Asset B fails to do so and instead makes a lower high, this creates a bearish SMT divergence. It suggests that the "smart money" may not be supporting the move in Asset A, signaling a potential reversal.
Bearish SMT: Main asset makes a higher high, while the correlated asset makes a lower high. This is a potential sell signal.
Bullish SMT: Main asset makes a lower low, while the correlated asset makes a higher low. This is a potential buy signal.
How it Works in the Script:
Data Request: For each timeframe, the script uses the request.security() function to fetch the high and low data for both the main chart symbol (syminfo.tickerid) and the chosen Comparison Asset.
Pivot Comparison: When a new pivot is confirmed on the main asset, the script checks if a corresponding pivot also formed on the comparison asset at the same time.
Divergence Check: It then compares the direction of the pivots. For a bearish SMT, it checks if the main asset's new pivot high is higher than its previous pivot high, while the comparison asset's new pivot high is lower than its previous one. The logic is reversed for bullish SMT.
Visualization: If a divergence is found, the script draws a red (bearish) or green (bullish) line connecting the two pivots on your chart and places an "SMT" label.
Early SMT Detection
This is a proactive feature designed to give you a heads-up. Waiting for a 4-hour or daily pivot to form can take a long time. The early detection system looks for SMT divergences on a much smaller, user-defined Detection timeframe (e.g., 15-minute).
How it Works in the Script:
Awaiting Setup: After a primary pivot (Pivot A) is formed on the main timeframe (e.g., a Daily pivot high), the script begins monitoring.
Intraday Monitoring: It then watches the Detection timeframe (e.g., 15-minute) for smaller intraday pivots.
Potential Divergence: It looks for an intraday pivot that forms a divergence against the primary Pivot A.
Watchline & Alert: When this "potential" divergence occurs, the script draws a dashed white line and triggers a "Potential SMT" alert. This isn't a confirmed SMT on the main timeframe yet, but it's a powerful early warning that one may be forming.
Drawing & Object Management
To keep the chart clean and prevent performance issues, the script manages its drawings (lines and labels) efficiently. It stores them in arrays and uses a drawing limit to automatically delete the oldest drawings as new ones are created, ensuring your TradingView remains responsive.
How to Use the Indicator
Configuration
Enable Timeframes: Use the checkboxes (Enable Timeframe 1, Enable Timeframe 2, etc.) to activate the timeframes you want to monitor. It's often best to start with one or two to keep the chart clean.
Select Timeframes: Choose the higher timeframes you want to analyze (e.g., 240 for 4-hour, D for Daily, W for Weekly).
Set Pivot Strength: The default of 3 for Left/Right strength is a good starting point. Increase it to find more significant market structure points or decrease it for more frequent, shorter-term pivots.
Configure SMT:
Check Enable SMT for the timeframes where you want to detect divergence.
Enter a Comparison Asset . This is crucial. Ensure the assets are correlated.
To use the early warning system, check Enable early SMT detection and select an appropriate Detection timeframe (e.g., 15 or 60 minutes for a Daily analysis).
Pure Price Action Liquidity Sweeps [LuxAlgo]The Pure Price Action Liquidity Sweeps indicator is a pure price action adaptation of our previously published and highly popular Liquidity-Sweeps script.
Similar to its earlier version, this indicator detects the presence of liquidity sweeps on the user's chart, while also identifying potential areas of support/resistance or entry when liquidity levels are taken. The key difference, however, is that this price action version relies solely on price patterns, eliminating the need for numerical swing length settings.
🔶 USAGE
A Liquidity Sweep occurs when the price breaks through a liquidity level , after which the price returns below/above the liquidity level , forming a wick.
The examples below show a bullish and bearish scenario of "a wick passing through a liquidity level where the price quickly comes back".
Short-term liquidity sweep detection is based on short-term swing levels. Some of these short-term levels, depending on further market developments, may evolve into intermediate-term levels and, in the long run, become long-term levels. Therefore, enabling short-term detection with the script means showing all levels, including minor and temporal ones. Depending on the trader's style, some of these levels may be considered noise. Enabling intermediate and long-term levels can help filter out this noise and provide more significant levels for trading decisions. For further details on how swing levels are identified please refer to the details section.
The Intermediate-term option selection for the same chart as above, filters out minor or noisy levels, providing clearer and more significant levels for traders to observe.
🔶 DETAILS
The swing points detection feature relies exclusively on price action, eliminating the need for numerical user-defined settings.
The first step involves detecting short-term swing points, where a short-term swing high (STH) is identified as a price peak surrounded by lower highs on both sides. Similarly, a short-term swing low is recognized as a price trough surrounded by higher lows on both sides.
Intermediate-term swing and long-term swing points are detected using the same approach but with a slight modification. Instead of directly analyzing price candles, we now utilize the previously detected short-term swing points. For intermediate-term swing points, we rely on short-term swing points, while for long-term swing points, we use the intermediate-term ones.
🔶 SETTINGS
Detection: Period options of the detected swing points.
🔶 RELATED SCRIPTS
Pure-Price-Action-Structures.
Liquidity-Sweeps.
[EVI]EMA with Volume LevelsThe " EMA with Volume Levels" script calculates the Exponential Moving Average (EMA) of the closing prices over a specified period and dynamically changes the color of the EMA based on volume levels. This indicator helps traders easily identify the current volume conditions. As the volume increases or decreases, the color of the EMA changes, providing a visual cue that can assist in making better trading decisions.
Features
This script offers the following features:
EMA Calculation: Calculates the Exponential Moving Average of the closing prices over the user-defined period (default is 360).
Volume Threshold Calculation: Computes the Simple Moving Average (SMA) and standard deviation of the volume over the user-defined period (default is 500), classifying the volume levels into extreme, high, medium, and low.
Dynamic EMA Color: Changes the color of the EMA dynamically based on volume levels, displaying it visually on the chart.
Chart Interpretation
EMA Color and Volume:
If the EMA line is red, it indicates very high volume.
If the EMA line is green, it indicates high volume.
If the EMA line is light green, it indicates medium volume.
If the EMA line is gray, it indicates low volume.
If the EMA line is dark gray, it indicates very low volume.
Cross Analysis:
When the EMA line and the candles are about to cross, and the volume is high (causing the EMA line to turn red), the candles are more likely to break through the 360-day EMA line.
Conversely, if the volume is low and the EMA line turns dark, the EMA line will likely act as a resistance or support level, increasing the likelihood of a bounce.
Additional Indicator:
Using the 20-day moving average along with this script can be beneficial. Combining these two moving averages can provide a more comprehensive view of market volatility.
Notes
Clean Chart: Ensure your chart is clean when using this script. Avoid including other scripts or unnecessary elements.
Additional Explanation: If further explanation is needed on how to use or understand the script, you can use drawings or images on the chart to provide additional context.
Divergence Toolkit (Real-Time)The Divergence Toolkit is designed to automatically detect divergences between the price of an underlying asset and any other @TradingView built-in or community-built indicator or script. This algorithm provides a comprehensive solution for identifying both regular and hidden divergences, empowering traders with valuable insights into potential trend reversals.
🔲 Methodology
Divergences occur when there is a disagreement between the price action of an asset and the corresponding indicator. Let's review the conditions for regular and hidden divergences.
Regular divergences indicate a potential reversal in the current trend.
Regular Bullish Divergence
Price Action - Forms a lower low.
Indicator - Forms a higher low.
Interpretation - Suggests that while the price is making new lows, the indicator is showing increasing strength, signaling a potential upward reversal.
Regular Bearish Divergence
Price Action - Forms a higher high.
Indicator - Forms a lower high.
Interpretation - Indicates that despite the price making new highs, the indicator is weakening, hinting at a potential downward reversal.
Hidden divergences indicate a potential continuation of the existing trend.
Hidden Bullish Divergence
Price Action - Forms a higher low.
Indicator - Forms a lower low.
Interpretation - Suggests that even though the price is retracing, the indicator shows increasing strength, indicating a potential continuation of the upward trend.
Hidden Bearish Divergence
Price Action - Forms a lower high.
Indicator - Forms a higher high.
Interpretation - Indicates that despite a retracement in price, the indicator is still strong, signaling a potential continuation of the downward trend.
In both regular and hidden divergences, the key is to observe the relationship between the price action and the indicator. Divergences can provide valuable insights into potential trend reversals or continuations.
The methodology employed in this script involves the detection of divergences through conditional price levels rather than relying on detected pivots. Traditionally, divergences are created by identifying pivots in both the underlying asset and the oscillator. However, this script employs a trailing stop on the oscillator to detect potential swings, providing a real-time approach to identifying divergences, you may find more info about it here (SuperTrend Toolkit) . We detect swings or pivots simply by testing for crosses between the indicator and its trailing stop.
type oscillator
float o = Oscillator Value
float s = Trailing Stop Value
oscillator osc = oscillator.new()
bool l = ta.crossunder(osc.o, osc.s) => Utilized as a formed high
bool h = ta.crossover (osc.o, osc.s) => Utilized as a formed low
// Note: these conditions alone could cause repainting when they are met but canceled at a later time before the bar closes. Hence, we wait for a confirmed bar.
// The script also includes the option to immediately alert when the conditions are met, if you choose so.
By testing for conditional price levels, the script achieves similar outcomes without the delays associated with pivot-based methods.
type bar
float o = open
float h = high
float l = low
float c = close
bar b = bar.new()
bool hi = b.h < b.h => A higher price level has been created
bool lo = b.l > b.l => A lower price level has been created
// Note: These conditions do not check for certain price swings hence they may seldom result in inaccurate detection.
🔲 Setup Guide
A simple example on one of my public scripts, Standardized MACD
🔲 Utility
We may auto-detect divergences to spot trend reversals & continuations.
🔲 Settings
Source - Choose an oscillator source of which to base the Toolkit on.
Zeroing - The Mid-Line value of the oscillator, for example RSI & MFI use 50.
Sensitivity - Calibrates the sensitivity of which Divergencies are detected, higher values result in more detections but less accuracy.
Lifetime - Maximum timespan to detect a Divergence.
Repaint - Switched on, the script will trigger Divergencies as they happen in Real-Time, could cause repainting when the conditions are met but canceled at a later time before bar closes.
🔲 Alerts
Bearish Divergence
Bullish Divergence
Bearish Hidden Divergence
Bullish Hidden Divergence
As well as the option to trigger 'any alert' call.
The Divergence Toolkit provides traders with a dynamic tool for spotting potential trend reversals and continuations. Its innovative approach to real-time divergence detection enhances the timeliness of identifying market opportunities.
Rolling MACDThis indicator displays a Rolling Moving Average Convergence Divergence . Contrary to MACD indicators which use a fix time segment, RMACD calculates using a moving window defined by a time period (not a simple number of bars), so it shows better results.
This indicator is inspired by and use the Close & Inventory Bar Retracement Price Line to create an MACD in different timeframes.
█ CONCEPTS
If you are not already familiar with MACD, so look at Help Center will get you started www.tradingview.com
The typical MACD, short for moving average convergence/divergence, is a trading indicator used in technical analysis of stock prices, created by Gerald Appel in the late 1970s. It is designed to reveal changes in the strength, direction, momentum, and duration of a trend in a stock's price.
The MACD indicator(or "oscillator") is a collection of three time series calculated from historical price data, most often the closing price. These three series are: the MACD series proper, the "signal" or "average" series, and the "divergence" series which is the difference between the two. The MACD series is the difference between a "fast" (short period) exponential moving average (EMA), and a "slow" (longer period) EMA of the price series. The average series is an EMA of the MACD series itself.
Because RMACD uses a moving window, it does not exhibit the jumpiness of MACD plots. You can see the more jagged MACD on the chart above. I think both can be useful to traders; up to you to decide which flavor works for you.
█ HOW TO USE IT
Load the indicator on an active chart (see the Help Center if you don't know how).
Time period
By default, the script uses an auto-stepping mechanism to adjust the time period of its moving window to the chart's timeframe. The following table shows chart timeframes and the corresponding time period used by the script. When the chart's timeframe is less than or equal to the timeframe in the first column, the second column's time period is used to calculate RMACD:
Chart Time
timeframe period
1min 🠆 1H
5min 🠆 4H
1H 🠆 1D
4H 🠆 3D
12H 🠆 1W
1D 🠆 1M
1W 🠆 3M
You can use the script's inputs to specify a fixed time period, which you can express in any combination of days, hours and minutes.
By default, the time period currently used is displayed in the lower-right corner of the chart. The script's inputs allow you to hide the display or change its size and location.
Minimum Window Size
This input field determines the minimum number of values to keep in the moving window, even if these values are outside the prescribed time period. This mitigates situations where a large time gap between two bars would cause the time window to be empty, which can occur in non-24x7 markets where large time gaps may separate contiguous chart bars, namely across holidays or trading sessions. For example, if you were using a 1D time period and there is a two-day gap between two bars, then no chart bars would fit in the moving window after the gap. The default value is 10 bars.
//
This indicator should make trading easier and improve analysis. Nothing is worse than indicators that give confusingly different signals.
I hope you enjoy my new ideas
best regards
Chervolino
[ChasinAlts] SuppRe-me ZonesHello fellow tradeurs, I couldn't find one similar on TV so wanted to make it.. Took me a little while to figure some things out as I am in new coding territory with this script. I had a hard time finding ways to make only a partial zone/box disappear if price only crossed part of it. Nonetheless, I figured it out so I hope you enjoy the outcome. Now, allow me to take a second to first explain the utility that is this script...or at least expose my reasoning when I decided to go ahead with this little project and take the precious time necessary to learn parts of pine that I did not previously know how to deal with. Ultimately, I built this for the 1s-15s TF(except for the "Consecutive Bars/Large Bars" Boxes...Those were meant to use on both these second TFs and Higher TFs.... ). The reasoning behind all of this was to give me a more definitive answer to all of my questions regarding the speed at which it would take price to revisit areas that it very abruptly went to/left on a VERY short TF (like the 1sec charts)...or even if it EVER would). To determine this I wanted to draw lines starting at the end of large wicks, draw boxes spanning the entire span of large wicks, and lastly to draw boxes spanning the entire span of very large bodies. For this last one, not only did I want to draw a box on a single candle that possessed a large body but also if there were consecutive red candles in a row, their bodies could be summed up and if this summation exceeds the minimum body % threshold then it too counts just like a single large candled body would if it was larger than the threshold. All in all I really enjoyed this script and most importantly the data that it produces. What I found after coding the script was that (again on the 1 sec- 15 sec charts) was that price very quickly (relatively speaking I suppose) came back over these box/zoned areas and that the lines drawn from the tip of the large wicks would at some point in the near future act as very good support and resistance for price to either bounce off of or breakout from.
Now, with each of these objects you can choose to delete them when price crosses the object or have them continuously drawn on the chart...your call...but it gets awful messy sometimes if you let them continue printing.
Peace and love people...peace and love,
-ChasinAlts
Portfolio Laboratory [Kioseff Trading]Hello!
This script looks to experiment with historical portfolio performance. However, a hypothetical cash balance is not used; weighted percentage increases and decreases are used.
You can select up to 10 assets to include in the portfolio. Long and short positions are possible.
Show in the image are the portfolio's weight, the total return of the portfolio and the total return of the asset on the chart over the selected timeframe.
Shown in the image above are the constituents of the portfolio, which can include any asset, the weighted percentage gain/loss of the constituents in addition to 10 major indices and their respective total percentage gain/loss over the timeframe.
Shown in the image above are the dividend yield % of the portfolio and relevant portfolio metrics - ex-post calculations are applied and are predicated on simple returns.
Shown in the image above is a portfolio of all short positions; portfolio calculations adjusted to the modifications.
Also shown is a change in the index the portfolio is calculated against. I have been asked a few times to include NIFTY 50 in my scripts - I made sure this was achieved, lol!
Show in the image is a performance line of performance of percentage increases/decreases for the index calculated against, the asset on the chart, and the portfolio.
All lines start simultaneously on the selected start date at the close price of the session for the asset on your chart.
However, the right-hand scale, whether displaying price or percent, cannot be used to assess the performance of each line - they are useful for visualization only and can extend below zero on a low-priced asset. Calculations will not execute correctly when selecting a start date prior to any asset in the portfolio's first trading session; calculations do not begin on the first bar of the asset on your chart.
I decided to code the script this way so statistics remain fixed when moving from asset to asset!
To compensate for this limitation, I included a label plot and background color change at the first session in which all assets in the portfolio had at least one bar of price data. You can adjust the calculation start date to the date portrayed on the label to test al possible price data!
The statistics table, and the performance lines, can be hidden in the user input section.
I plan on putting a bit more work into this script. I have some ideas on what to include; however, any input is greatly appreciated! If there's something you would like me to include please let me know.
@scheplick mentioned me in a script he recently coded:
My inspiration came from his script! I thank him for that!
Relative Volume (rVol), Better Volume, Average Volume ComparisonThis is the best version of relative volume you can find a claim which is based on the logical soundness of its calculation.
I have amalgamated various volume analysis into one synergistic script. I wasn't going to opensource it. But, as one of the lucky few winners of TradingClue 2. I felt obligated to give something back to the community.
Relative volume traditionally compares current volume to prior bar volume or SMA of volume. This has drawbacks. The question of relative volume is "Volume relative to what?" In the traditional scripts you'll find it displays current volume relative to the last number of bars. But, is that the best way to compare volume. On a daily chart, possibly. On a daily chart this can work because your units of time are uniform. Each day represents a full cycle of volume. However, on an intraday chart? Not so much.
Example: If you have a lookback of 9 on an hourly chart in a 24 hour market, you are then comparing the average volume from Midnight - 9 AM to the 9 AM volume. What do you think you'll find? Well at 9:30 when NY exchanges open the volume should be consistently and predictably higher. But though rVol is high relative to the lookback period, its actually just average or maybe even below average compared to prior NY session opens. But prior NY session opens are not included in the lookback and thus ignored.
This problem is the most visibly noticed when looking at the volume on a CME futures chart or some equivalent. In a 24 hour market, such as crypto, there are website's like skew can show you the volume disparity from time of day. This led me to believe that the traditional rVol calculation was insufficient. A better way to calculate it would be to compare the 9:30 am 30m bar today to the last week's worth of 9:30 am 30m bars. Then I could know whether today's volume at 9:30 am today is high or low based on prior 9:30 am bars. This seems to be a superior method on an intraday basis and is clearly superior in markets with irregular volume
This led me to other problems, such as markets that are open for less than 24 hours and holiday hours on traditional market exchanges. How can I know that the script is accurately looking at the correct prior relevant bars. I've created and/or adapted solutions to all those problems and these calculations and code snippets thus have value that extend beyond this rVol script for other pinecoders.
The Script
This rVol script looks back at the bars of the same time period on the viewing timeframe. So, as we said, the last 9:30 bars. Averages those, then divides the: . The result is a percentage expressed as x.xxx. Thus 1.0 mean current volume is equal to average volume. Below 1.0 is below the average and above 1.0 is above the average.
This information can be viewed on its own. But there are more levels of analysis added to it.
Above the bars are signals that correlate to the "Better Volume Indicator" developed by, I believe, the folks at emini-watch and originally adapted to pinescript by LazyBear. The interpretation of these symbols are in a table on the right of the indicator.
The volume bars can also be colored. The color is defined by the relationship between the average of the rVol outputs and the current volume. The "Average rVol" so to speak. The color coding is also defined by a legend in the table on the right.
These can be researched by you to determine how to best interpret these signals. I originally got these ideas and solid details on how to use the analysis from a fellow out there, PlanTheTrade.
I hope you find some value in the code and in the information that the indicator presents. And I'd like to thank the TradingView team for producing the most innovative and user friendly charting package on the market.
(p.s. Better Volume is provides better information with a longer lookback value than the default imo)
Credit for certain code sections and ideas is due to:
LazyBear - Better Volume
Grimmolf (From GitHub) - Logic for Loop rVol
R4Rocket - The idea for my rVol 1 calculation
And I can't find the guy who had the idea for the multiples of volume to the average. Tag him if you know him
Final Note: I'd like to leave a couple of clues of my own for fellow seekers of trading infamy.
Indicators: indicators are like anemometers (The things that measure windspeed). People talk bad about them all the time because they're "lagging." Well, you can't tell what the windspeed is unless the wind is blowing. anemometers are lagging indicators of wind. But forecasters still rely on them. You would use an indicator, which I would define as a instrument of measure, to tell you the windspeed of the markets. Conversely, when people talk positively about indicators they say "This one is great and this one is terrible." This is like a farmer saying "Shovels are great, but rakes are horrible." There are certain tools that have certain functions and every good tool has a purpose for a specific job. So the next time someone shares their opinion with you about indicators. Just smile and nod, realizing one day they'll learn... hopefully before they go broke.
How to forecast: Prediction is accomplished by analyzing the behavior of instruments of measure to aggregate data (using your anemometer). The data is then assembled into a predictive model based on the measurements observed (a trading system). That predictive model is tested against reality for it's veracity (backtesting). If the model is predictive, you can optimize your decision making by creating parameter sets around the prediction that are synergistic with the implications of the prediction (risk, stop loss, target, scaling, pyramiding etc).
<3
Tic Tac Toe (For Fun)Hello All,
I think all of you know the game "Tic Tac Toe" :) This time I tried to make this game, and also I tried to share an example to develop a game script in Pine. Just for fun ;)
Tic Tac Toe Game Rules:
1. The game is played on a grid that's 3 squares by 3 squares.
2. You are "O", the computer is X. Players take turns putting their marks in empty squares.
3. if a player makes 3 of her marks in a row (up, down, across, or diagonally) the he is the winner.
4. When all 9 squares are full, the game is over (draw)
So, how to play the game?
- The player/you can play "O", meaning your mark is "O", so Xs for the script. please note that: The script plays with ONLY X
- There is naming for all squears, A1, A2, A3, B1, B2, B3, C1, C2, C3. you will see all these squares in the options.
- also You can set who will play first => "Human" or "Computer"
if it's your turn to move then you will see "You Move" text, as seen in the following screenshot. for example you want to put "O" to "A1" then using options set A1 as O
How the script play?
it uses MinMax algorithm with constant depth = 4. And yes we don't have option to make recursive functions in Pine at the moment so I made four functions for each depth. this idea can be used in your scripts if you need such an algorithm. if you have no idea about MinMax algorithm you can find a lot of articles on the net :)
The script plays its move automatically if its turn to play. you will just need to set the option that computer played (A1, C3, etc)
if it's computer turn to play then it calculates and show the move it wants to play like "My Move : B3 <= X" then using options you need to set B3 as X
Also it checks if the board is valid or not:
I have tested it but if you see any bug let me know please
Enjoy!
RSI with Self-Adjusting Linear Regression Bands (Expo)RSI with Self-Adjusting Linear Regression Bands (Expo) makes use of RSI and Linear Regression to create an RSI that follows the current trend. The indicator has an upper and lower self-adjusting Linear Regression Band that act as RSI boundaries.
HOW TO USE
The indicator can be used in multiple ways, for instance, to find overbought and oversold areas. Or to identify trends as well as pullbacks in trends.
INDICATOR IN ACTION
This indicator is a modification of RafaelZioni's work "Linear Regression Trend bands"
Credit to: RafaelZioni
I hope you find this indicator useful , and please comment or contact me if you like the script or have any questions/suggestions for future improvements. Thanks!
I will continually work on this indicator, so please share your experience and feedback as it will enable me to make even better improvements. Thanks to everyone that has already contacted me regarding my scripts. Your feedback is valuable for future developments!
-----------------
Disclaimer
Copyright by Zeiierman.
The information contained in my scripts/indicators/ideas does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, or individual’s trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My scripts/indicators/ideas are only for educational purposes!
VWAP forex Yesterday Hi/Low update fix This script is an updte fix of an earlier script that stopped functioning when TradingView updated Pine script. This script plots Forex (24 hour session) VWAP, yesterday's high, low, open and close (HLOC),
the day before's HLOC -
Also plots higher timeframe 20 emas
1 minute 5, 15, 60 period 20 ema
5 minute 15, 60 period 20 ema
15 minute 60, 120 , 240 period 20 ema
60 minute 120, 240 period 20 ema
120 minute 240, D period 20 ema
240 minute D period 20 ema
Also signals inside bars (high is less than or equal to the previous bar's high and the low is greater than or equal to the previous low) the : true inside bars have a maroon triangle below the bar as well as a ">" above the bar.
If subsequest bars are inside the last bar before the last true inside bar they also are marked with an ">"
This is probably a slight variation from the way Leaf_West plots the inside bars.
It appears that he marks all bars that are inside the original bar until one a bar has a high or low
outside the original bar. But I would need to see an example on his charts.
The Time Session Glitch and the Fix FX_IDC, COINBASE and BITSTAMP:
The script will correctly default to 1700 hrs to 1700hrs EDT/EST session for FXCM.
Strangely some securities appear to erroneously start their session at 1200 hrs ie. My guess is that they are somehow tied to GMT+0 instead of New York time (GMT+5). See this for yourself by selecting EURUSD using the FXCM exchange (FX:EURUSD) and then EURUSD from the IDC exchange (FX_IDC:EURUSD). The FX-IDC session opening range starts 5 hours before it actually should at 1700 hrs EDT/EST. To correct for this I have implemented an automatic fix (default) and a user selected "5 hour time shift adjust. ment needed on some securities".
There is also a 4 hour time shift button which might be necessary when New York reverts from Eastern Standard Time to Eastern Daylight Time (1 hour difference) in March (and then back again in November). In the default auto adjust mode you will need to select the 1 hour time shift. That is if this glitch still exists at that time.
I have looked at other scripts, other than my own and where the script is available, that need to use information about the opening bar and all have the same time shift issue
COINBASE and BITSTAMP open at 0000 hours GMT. Since I use lines instead of circles or crosses I had to make a small adjustment to plot the lines correctly.
If it needs work let me know.
Jayy
alpha Renko intraday wave timeI was asked to share my experimental Renko intraday wave time. So here it is warts and all. The same for the rest - except the Weis cumulative volume.
Renko wave time is in minutes. This script is strictly intraday and has not been played with extensively.
You must use traditional Renko and set the script wave size to the same size as the Renko brick size.
If you click on the sideways wishbone or "V" in the middle upper part of the chart you will get all of the scripts in this particular sandbox. After clicking the sideways wish bone click on "make it mine". You will then have the whole sandbox. The only published script is the Weis cumulative wave.
The "Boys MAs" is supposed to be a script for daily charts and from within some kind of consolidation. In any case I am intrigued by some signals. You have a variety of sandbox options in the format section of the boys MAs.
These codes are pretty rough with lots of abandoned lines of script.
Long/Short Ratio Aggregated (Lite)Description — Long/Short Ratio Aggregated (Lite)
This indicator provides a cross-exchange, open-interest-weighted aggregation of the Long/Short Ratio (LSR) for the cryptocurrency asset currently on your chart. It is designed to unify fragmented derivatives positioning data from multiple major exchanges into a single normalized signal that more accurately reflects real market sentiment and positioning bias across platforms.
Concept and Originality
Traditional Long/Short Ratio indicators are exchange-specific. They show how many traders are long versus short, but only within the scope of one venue (e.g., Binance or Bybit). This makes them incomplete and often misleading for directional bias analysis, since different exchanges host different participant profiles, levels of leverage, and quote-currency exposures.
This script addresses that limitation by:
Aggregating LSR data across multiple exchanges (Binance and Bybit).
Weighting each ratio by Open Interest (OI) — ensuring exchanges with higher open positions contribute proportionally more to the overall sentiment.
Normalizing all contract types (USDT, USDC, and USD-margined) into a consistent base-currency format.
This step corrects for structural differences between coin- and stablecoin-margined instruments, producing a true like-for-like comparison.
The result is a globalized Long/Short Ratio, normalized by exposure and liquidity, suitable for multi-venue orderflow estimation and directional bias assessment.
Note for moderators: I know there are already other scripts out there, but they may not support Open Interest Weighting or the same number of pairs. They also might not support proper normalization like in my script.
Calculation Methodology
For each supported exchange and contract type:
The script retrieves the latest Long/Short Ratio (LSR) and Open Interest (OI) values.
OI is used as the weighting factor, creating a proportional representation of positioning volume.
Values denominated in USD are normalized into base currency using close-price adjustment.
The final value is computed as:
Weighted LSR = (Σ (LSRᵢ × OIᵢ)) / (Σ OIᵢ)
This ensures that if, for example, Binance has twice the open interest of Bybit, its LSR contributes twice as much to the total weighted sentiment.
Interpretation
Value > 1.0 → Market participants are net-long (bullish bias).
Value < 1.0 → Market participants are net-short (bearish bias).
Strength of deviation from 1.0 indicates positioning imbalance magnitude.
Because the ratio is OI-weighted, large players or heavily margined exchanges influence the output proportionally more than smaller, low-volume venues — making this metric a better reflection of true market positioning rather than isolated retail sentiment.
Usage and Applications
Use this indicator as a component in:
Orderflow and sentiment confirmation, alongside price action and volume.
Funding rate correlation studies.
Intraday reversals or exhaustion zones, when combined with volatility or OI delta metrics.
Overlaying or combining this indicator with open interest change, cumulative volume delta, or funding rate divergence allows traders to build a high-resolution understanding of positioning shifts and crowd behavior.
Notes
The “Lite” version is optimized for execution and accessibility, focusing on accuracy while staying within Pine Script’s computational limits.
Exchange data availability may vary by symbol; unsupported pairs automatically return na and are automatically not included in the weighted calculation.
In summary:
This indicator transforms fragmented, exchange-specific Long/Short Ratio into a unified, OI-weighted global sentiment measure — a foundational tool for traders seeking to quantify derivative-side orderflow bias with cross-venue accuracy.
MTF EMA Smooth Indicator By : KaizenotradingPH (Open Source)This indicator script can display three different timeframe MTF EMA indicators simultaneously. The special thing of this script is that it has smoothing feature that can smooth the MTF EMA but only in minutes and hours timeframe (script limitation). You can enable the anti repainting as well which reference the previous bar. These features are useful for customize strategies scripts to avoid repainting. Additionally, this script have customizable length for the three MTF EMA indicators.
This is the open source version of the script.
IU Trailing Stop Loss MethodsThe 'IU Trailing Stop Loss Methods' it's a risk management tool which allows users to apply 12 trailing stop-loss (SL) methods for risk management of their trades and gives live alerts when the trailing Stop loss has hit. Below is a detailed explanation of each input and the working of the Script.
Main Inputs:
- bar_time: Specifies the date from which the trade begins and entry price will be the open of the first candle.
- entry_type: Choose between 'Long' or 'Short' positions.
- trailing_method: Select the trailing stop-loss method. Options include ATR, Parabolic SAR, Supertrend, Point/Pip based, Percentage, EMA, Highest/Lowest, Standard Deviation, and multiple target-based methods.
- exit_after_close: If checked, exits the trade only after the candle closes.
Optional Inputs:
ATR Settings:
- atr_Length: Length for the ATR calculation.
- atr_factor: ATR multiplier for SL calculation.
Parabolic SAR Settings:
- start, increment, maximum: Parameters for the Parabolic SAR indicator.
Supertrend Settings:
- supertrend_Length, supertrend_factor: Length and factor for the Supertrend indicator.
Point/Pip Based:
- point_base: Set trailing SL in points/pips.
Percentage Based:
- percentage_base: Set SL as a percentage of entry price.
EMA Settings:
- ema_Length: Length for EMA calculation.
Standard Deviation Settings:
- std_Length, std_factor: Length and factor for standard deviation calculation.
Highest/Lowest Settings:
- highest_lowest_Length: Length for the highest/lowest SL calculation.
Target-Based Inputs:
- ATR, Point, Percentage, and Standard Deviation based target SL settings with customizable lengths and multipliers.
Entry Logic:
- Trades initiate based on the entry_type selected and the specified bar_time.
- If Long is selected, a long trade is initiated when the conditions match, and vice versa for Short.
Trailing Stop-Loss (SL) Methods Explained:
The strategy dynamically adjusts stop-loss based on the chosen method. Each method has its calculation logic:
- ATR: Stop-loss calculated using ATR multiplied by a user-defined factor.
- Parabolic SAR: Uses the Parabolic SAR indicator for trailing stop-loss.
- Supertrend: Utilizes the Supertrend indicator as the stop-loss line.
- Point/Pip Based: Fixed point-based stop-loss.
- Percentage Based: SL set as a percentage of entry price.
- EMA: SL based on the Exponential Moving Average.
- Highest/Lowest: Uses the highest high or lowest low over a specified period.
- Standard Deviation: SL calculated using standard deviation.
Exit Conditions:
- If exit_after_close is enabled, the position will only close after the candle confirms the stop-loss hit.
- If exit_after_close is disabled, the strategy will close the trade immediately when the SL is breached.
Visualization:
The script plots the chosen trailing stop-loss method on the chart for easy visualization.
Target-Based Trailing SL Logic:
- When a position is opened, the strategy calculates the initial stop-loss and progressively adjusts it as the price moves favorably.
- Each SL adjustment is stored in an array for accurate tracking and visualization.
Alerts and Labels:
- When the Entry or trailing stop loss is hit this scripts draws a label and give alert to the user that trailing stop has been hit for the trade.
Note - on the historical data The Script will show nothing if the entry and the exit has happened on the same candle, because we don't know what was hit first SL or TP (basically how the candle was formed on the lower timeframe).
Summary:
This script offers flexible trailing stop-loss options for traders who want dynamic risk management in their strategies. By offering multiple methods like ATR, SAR, Supertrend, and EMA, it caters to various trading styles and risk preferences.
Systematic Investment Tracker by Ceyhun Gonul### English Description
**Systematic Investment Tracker with Enhanced Features**
This script, titled **Systematic Investment Tracker with Enhanced Features**, is a TradingView tool designed to support systematic investments across different market conditions. It provides traders with two customizable investment strategies — **Continuous Buying** and **Declining Buying** — and includes advanced dynamic investment adjustment features for each.
#### Detailed Explanation of Script Features and Originality
1. **Two Investment Strategies**:
- **Continuous Buying**: This strategy performs purchases consistently at each interval, as set by the user, regardless of market price changes. It follows the principle of dollar-cost averaging, allowing users to build an investment position over time.
- **Declining Buying**: Unlike Continuous Buying, this strategy triggers purchases only when the asset's price has declined from the previous interval's closing price. This approach helps users capitalize on lower price points, potentially improving average costs during downward trends.
2. **Dynamic Investment Adjustment**:
- For both strategies, the script includes a **Dynamic Investment Adjustment** feature. If enabled, this feature increases the purchasing amount by 50% if the current price has fallen by a specific user-defined percentage relative to the previous price. This allows users to accumulate a larger position when the asset is declining, which may benefit long-term cost-averaging strategies.
3. **Customizable Time Frames**:
- Users can specify a **start and end date** for investment, allowing them to restrict or backtest strategies within a specific timeframe. This feature is valuable for evaluating strategy performance over specific market cycles or historical periods.
4. **Graphical Indicators and Labels**:
- The script provides graphical labels on the chart that display purchase points. These indicators help users visualize their investment entries based on the strategy selected.
- A summary **performance label** is also displayed, providing real-time updates on the total amount spent, accumulated quantity, average cost, portfolio value, and profit percentage for each strategy.
5. **Language Support**:
- The script includes English and Turkish language options. Users can toggle between these languages, allowing the summary label text and descriptions to be displayed in their preferred language.
6. **Performance Comparison Table**:
- An optional **Performance Comparison Table** is available, offering a side-by-side analysis of net profit, total investment, and profit percentage for both strategies. This comparison table helps users assess which strategy has yielded better returns, providing clarity on each approach's effectiveness under the chosen parameters.
#### How the Script Works and Its Uniqueness
This closed-source script brings together two established investment strategies in a single, dynamic tool. By integrating continuous and declining purchase strategies with advanced settings for dynamic investment adjustment, the script offers a powerful, flexible tool for both passive and active investors. The design of this script provides unique benefits:
- Enables automated, systematic investment tracking, allowing users to build positions gradually.
- Empowers users to leverage declines through dynamic adjustments to optimize average cost over time.
- Presents an easy-to-read performance label and table, enabling an efficient and transparent performance comparison for informed decision-making.
---
### Türkçe Açıklama
**Gelişmiş Özellikli Sistematik Yatırım Takipçisi**
**Gelişmiş Özellikli Sistematik Yatırım Takipçisi** adlı bu TradingView scripti, çeşitli piyasa koşullarında sistematik yatırım stratejilerini desteklemek üzere tasarlanmış bir araçtır. Script, kullanıcıya iki özelleştirilebilir yatırım stratejisi — **Sürekli Alım** ve **Düşen Alım** — ve her strateji için gelişmiş dinamik yatırım ayarlama seçenekleri sunar.
#### Script Özelliklerinin Detaylı Açıklaması ve Özgünlük
1. **İki Yatırım Stratejisi**:
- **Sürekli Alım**: Bu strateji, fiyat değişimlerine bakılmaksızın kullanıcının belirlediği her aralıkta sabit bir miktar yatırım yapar. Bu yaklaşım, uzun vadede pozisyonu kademeli olarak oluşturmak isteyenler için idealdir.
- **Düşen Alım**: Sürekli Alım’ın aksine, bu strateji yalnızca fiyat bir önceki aralığın kapanış fiyatına göre düştüğünde alım yapar. Bu yöntem, yatırımcıların daha düşük fiyatlardan alım yaparak ortalama maliyeti potansiyel olarak iyileştirmelerine yardımcı olur.
2. **Dinamik Yatırım Ayarlaması**:
- Her iki strateji için de **Dinamik Yatırım Ayarlaması** özelliği bulunmaktadır. Bu özellik aktif edildiğinde, mevcut fiyatın bir önceki fiyata göre kullanıcı tarafından belirlenen bir yüzde oranında düşmesi durumunda alım miktarını %50 artırır. Bu durum, uzun vadede maliyet ortalaması stratejilerine katkıda bulunur.
3. **Özelleştirilebilir Tarih Aralığı**:
- Kullanıcılar, yatırımı belirli bir tarih aralığında sınırlandırmak veya test etmek için bir **başlangıç ve bitiş tarihi** belirleyebilir. Bu özellik, strateji performansını geçmiş piyasa döngüleri veya belirli dönemlerde değerlendirmek için kullanışlıdır.
4. **Grafiksel İşaretleyiciler ve Etiketler**:
- Script, grafik üzerinde alım noktalarını gösteren işaretleyiciler sağlar. Bu görsel göstergeler, kullanıcıların seçilen stratejiye göre yatırım girişlerini görselleştirmesine yardımcı olur.
- Ayrıca, her strateji için harcanan toplam tutar, biriken miktar, ortalama maliyet, portföy değeri ve kâr yüzdesi gibi bilgileri gerçek zamanlı olarak gösteren bir **performans etiketi** sunar.
5. **Dil Desteği**:
- Script, İngilizce ve Türkçe dillerini desteklemektedir. Kullanıcılar, performans etiketi metninin ve açıklamalarının tercih ettikleri dilde görüntülenmesi için dil seçimini yapabilir.
6. **Performans Karşılaştırma Tablosu**:
- İsteğe bağlı olarak kullanılabilen bir **Performans Karşılaştırma Tablosu**, her iki strateji için net kâr, toplam yatırım ve kâr yüzdesi gibi bilgileri yan yana analiz eder. Bu tablo, kullanıcıların hangi stratejinin daha yüksek getiri sağladığını değerlendirmesine yardımcı olur.
#### Scriptin Çalışma Prensibi ve Özgünlüğü
Bu script, iki yatırım stratejisini gelişmiş bir araçta birleştirir. Sürekli ve düşen fiyatlara dayalı alım stratejilerini dinamik yatırım ayarlama özelliğiyle entegre ederek yatırımcılar için güçlü ve esnek bir çözüm sunar. Script’in tasarımı aşağıdaki benzersiz faydaları sağlamaktadır:
- Otomatik, sistematik yatırım takibi yaparak kullanıcıların pozisyonlarını kademeli olarak oluşturmalarına olanak tanır.
- Dinamik ayarlama ile düşüşlerden yararlanarak zaman içinde ortalama maliyeti optimize etme olanağı sağlar.
- Her iki stratejinin performansını basit ve anlaşılır bir şekilde karşılaştıran etiket ve tablo ile verimli bir performans değerlendirmesi sunar.
Swing Assassin's Consolidated ScriptI put this script together to essentially consolidate a number of scripts that I use on a daily basis into one script. This is an ongoing improvement effort, so there may be some garbage in here right now so keep that in mind if you intend to use this to help in your trading.
There are 5 moving averages (Hull). I use the Fast, Mid and Slow to find entries after I us the Medium Slow and Super Slow to identify a trend. Otherwise, I have those three turned off.
This script also uses Bollinger Bands which I literally cannot trade without.
The script also has anchored VWAP , automated support/resistance lines, and a homebrewed Volume Profile that is a copy from Ildar Akhmetgaleev's indicator "Poor Man's Volume Profile" used under Mozilla Public License Version 2.0.
PriceCatch Opensource CPRHi Friends & TradingView community.
Greetings to you.
Some traders like to use Central Pivot Range (CPR) in their chart for assessing price movement. It is usually used in combination with Pivot Levels.
Calculating CPR is a simple matter. There a few CPR scripts in the Public Library, but have the code hidden. I thought there may many users who may want to know how CPR is calculated and study it for use in their own scripts. So, here is the CPR script with the code. Use it as you please.
Note: CPR is plotted only on intra-day time-frames.
The light magenta (band) range is current day CPR.
The light blue (band) range is tomorrow's CPR projected for you today itself based on current day's price action and range.
Queries / feedback welcome.
All the best.
PS: The script is developed to the best of my ability and as with all indicators, you have to decide if it might be useful to you when adding to your chart.
Pinescript - Standard Array Functions Library by RRBStandard Array Functions Library by RagingRocketBull 2021
Version 1.0
This script provides a library of every standard Pinescript array function for live testing with all supported array types.
You can find the full list of supported standard array functions below.
There are several libraries:
- Common String Functions Library
- Common Array Functions Library
- Standard Array Functions Library
Features:
- Supports all standard array functions (30+) with all possible array types* (* - except array.new* functions and label, line array types)
- Live Output for all/selected functions based on User Input. Test any function for possible errors you may encounter before using in script.
- Output filters: show errors, hide all excluded and show only allowed functions using a list of function names
- Console customization options: set custom text size, color, page length, line spacing
Notes:
- uses Pinescript v3 Compatibility Framework
- uses Common String Functions Library
- has to be a separate script to reduce the number of local scopes in Common Array Function Library, there's no way to merge these scripts into a single library.
- lets you live test all standard array functions for errors. If you see an error - change params in UI
- array types that are not supported by certain functions and producing a compilation error were disabled with "error" showing up as result
- if you see "Loop too long" error - hide/unhide or reattach the script
- doesn't use pagination, a single str contains all output
- for most array functions to work (except push), an array must be defined with at least 1 pre-existing dummy element 0.
- array.slice and array.fill require from_index < to_index otherwise error
- array.join only supports string arrays, and delimiter must be a const string, can't be var/input. Use join_any_array to join any array type into string. You can also use tostring() to join int, float arrays.
- array.sort only supports int, float arrays. Use sort_any_array from the Common Array Function Library to sort any array type.
- array.sort only sorts values, doesn't preserve indexes. Use sort_any_array from the Common Array Function Library to sort any array while preserving indexes.
- array.concat appends string arrays in reverse order, other array types are appended correctly
- array.covariance requires 2 int, float arrays of the same size
- tostring(flag) works only for internal bool vars, flag expression can't depend on any inputs of any type, use bool_to_str instead
- you can't create an if/function that returns var type value/array - compiler uses strict types and doesn't allow that
- however you can assign array of any type to another array of any type creating an arr pointer of invalid type that must be reassigned to a matching array type before used in any expression to prevent error
- source_array and create_any_array2 use this loophole to return an int_arr pointer of a var type array
- this works for all array types defined with/without var keyword. This doesn't work for string arrays defined with var keyword for some reason
- you can't do this with var type vars, this can be done only with var type arrays because they are pointers passed by reference, while vars are the actual values passed by value.
- wrapper functions solve the problem of returning var array types. This is the only way of doing it when the top level arr type is undefined.
- you can only pass a var type value/array param to a function if all functions inside support every type - otherwise error
- alternatively values of every type must be passed simultaneously and processed separately by corresponding if branches/functions supporting these particular types returning a common single result type
- get_var_types solves this problem by generating a list of dummy values of every possible type including the source type, allowing a single valid branch to execute without error
- examples of functions supporting all array types: array.size, array.get, array.push. Examples of functions with limited type support: array.sort, array.join, array.max, tostring
- unlike var params/global vars, you can modify array params and global arrays directly from inside functions using standard array functions, but you can't use := (it only works for local arrays)
- inside function always work with array.copy to prevent accidental array modification
- you can't compare arrays
- there's no na equivalent for arrays, na(arr) doesn't work
P.S. A wide array of skills calls for an even wider array of responsibilities
List of functions:
- array.avg(arr)
- array.clear(arr)
- array.concat(arr1, arr2)
- array.copy(arr)
- array.covariance(arr1, arr2)
- array.fill(arr, value, index_from, index_to)
- array.get(arr, index)
- array.includes(arr, value)
- array.indexof(arr, value)
- array.insert(arr, index, value)
- array.join(arr, delimiter)
- array.lastindexof(arr, value)
- array.max(arr)
- array.median(arr)
- array.min(arr)
- array.mode(arr)
- array.pop(arr)
- array.push(arr, value)
- array.range(arr)
- array.remove(arr, index)
- array.reverse(arr)
- array.set(arr, index, value)
- array.shift(arr)
- array.size(arr)
- array.slice(arr, index_from, index_to)
- array.sort(arr, order)
- array.standardize()
- array.stdev(arr)
- array.sum(arr)
- array.unshift(arr, value)
- array.variance(arr)
CSPDMost Advanced & Accurate CandleStick Pattern Detector
Looking All Over of All Markets for All Important Powerful Reversal | Corrective Patterns (25 type)
Filtering the Results with Optional Features like Oscillator, Bollinger Bands, Volume Confirmation, Prior and Following Candles Confirmation which are Fully Customizable.
With this you can detect:
Hammer | Shooting star
Inverted Hammer | Hanging
Long legged Doji | Dragonfly Doji | Gravestone Doji
Bullish tweezers | Bearish tweezers
Bullish inside bar | Bearish inside bar
Bullish three line strike | Bearish three line strike
Bullish engulfing | Bearish engulfing
Piercing line | Dark cloud cover
Bullish abandoned baby | Bearish abandoned baby
Morning star | Evening star
Three white soldiers | Three black crows
*Bullish kayo | *Bearish kayo
Features:
Prior and Following candles Confirmation
You can set prior and following candle as basic prerequisites for marking candles as pattern to make sure you are at the top or bottom of the trend.
Volume confirmation
You can active volume increasing confirmation for some of pattern with adjustable increase % relative to prior candle | candles.
Oscillator Confirmation
Active oscillator confirmation. Select your approved oscillator from list (Stochastic, RSI, StochRSI, MFI, StochMFI) then enter desired value for marking candles as bullish | bearish pattern.
Bollinger Bands Confirmation
Active BB confirmation. Configure your Bollinger Bands. Now only see the patterns which reached or crossed from Bands. Also you can enable BB clod to have your BB indicator at the same time.
Adjustable Flexibility and Precision
You can set tolerance% for Osc and BB Confirmation - each one separately - for more control.
Self-adaptability
The properties of markets change over time, for example the amplitude of fluctuations and the intensity of movements. The script is designed in such a way that you can examine the price history as a benchmark for changes in market properties to adopt determinants. Also you can control those manually.
Self-regulatory
The user has the ability to change input factors depending on their point of view.
Behind the pattern recognition algorithms, there are relationships and similarities in their appearance that cause them to be influenced by each other. Simultaneously with changing the determining factors of each pattern by you, script automatically adjusts other details in accordance with your changes.
Alerts
You can set for type of pattern or each one of pattern have been detected.
Fully Costumizable
All of these options can be change and adjust.
Note 1.
The patterns are based on extensive study of reference and famous sources and the experience of me and my friends in trading and analysis with price action methods.
Note 2.
Due to the Pine limitations in the number of outputs | plots for each script, our attempt has been made to select the best and most important patterns.
Note 3.
So far, many scripts have been written in this field, but our experience with all of them and even the build in version was not satisfactory, and this was the initial motivation for making the script.
We strive to improve progress and elimination of shortcomings and we will continue to make this better.
Note 4.
Through personal experience and based on the principles of market and candlestick psychology, we discovered a new type of pattern and named it as Kayo.
kayo is a two candle pattern which formed when:
1.We have a pivot point with prior candles as left bars and following candles as right bar. Pivot candle called as second candle.
2.In a bullish kayo, first candle must closed descending and second candle must closed as ascending. For bearish kayo vise versa.
3.In a bullish kayo, second candle's lower wick must be longer then upper wick.
4. A pattern marked as kayo when its conditions do not correspond to any of the other patterns(include the confirmation that user added), ie it has the last naming priority over the other patterns.
Note 5.
When you active confirmation options for patterns like hammer, engulf and etc which they conditions are like kayo in some extent, if they can't pass the confirmation steps, they can be marked as kayo pattern.
Note 6.
If you active volume confirmation for Three white soldiers | Three black crows, the confirmation get passed if the volume of forth or third candle increased as value as entered relative to volume EMA3 of 3 candles.
Note 7.
In a bullish pattern all highs of following candles MUST be higher than prior highs and all lows of following candles MUST be higher than prior lows. For bearish patterns vise versa.
This type of confirmation depends on High and Low NOT close!
Gift to price action lovers!
Support us with your like and comments. let us know your experience, points and idea to make this better together.
MIDAS VWAP Jayy his is just a bash together of two MIDAS VWAP scripts particularly AkifTokuz and drshoe.
I added the ability to show more MIDAS curves from the same script.
The algorithm primarily uses the "n" number but the date can be used for the 8th VWAP
I have not converted the script to version 3.
To find bar number go into "Chart Properties" select " "background" then select Indicator Titles and "Indicator values". When you place your cursor over a bar the first number you see adjacent to the script title is the bar number. Put that in the dialogue box midline is MIDAS VWAP . The resistance is a MIDAS VWAP using bar highs. The resistance is MIDAS VWAP using bar lows.
In most case using N will suffice. However, if you are flipping around charts inputting a specific date can be handy. In this way, you can compare the same point in time across multiple instruments eg first trading day of the year or an election date.
Adding dates into the dialogue box is a bit cumbersome so in this version, it is enabled for only one curve. I have called it VWAP and it follows the typical VWAP algorithm. (Does that make a difference? Read below re my opinion on the Difference between MIDAS VWAP and VWAP ).
I have added the ability to start from the bottom or top of the initiating bar.
In theory in a probable uptrend pick a low of a bar for a low pivot and start the MIDAS VWAP there using the support.
For a downtrend use the high pivot bar and select resistance. The way to see is to play with these values.
Difference between MIDAS VWAP and the regular VWAP
MIDAS itself as described by Levine uses a time anchored On-Balance Volume (OBV) plotted on a graph where the horizontal (abscissa) arm of the graph is cumulative volume not time. He called his VWAP curves Support/Resistance VWAP or S/R curves. These S/R curves are often referred to as "MIDAS curves".
These are the main components of the MIDAS chart. A third algorithm called the Top-Bottom Finder was also described. (Separate script).
Additional tools have been described in "MIDAS_Technical_Analysis"
Midas Technical Analysis: A VWAP Approach to Trading and Investing in Today’s Markets by Andrew Coles, David G. Hawkins
Copyright © 2011 by Andrew Coles and David G. Hawkins.
Denoting the different way in which Levine approached the calculation.
The difference between "MIDAS" VWAP and VWAP is, in my opinion, much ado about nothing. The algorithms generate identical curves albeit the MIDAS algorithm launches the curve one bar later than the VWAP algorithm which can be a pain in the neck. All of the algorithms that I looked at on Tradingview step back one bar in time to initiate the MIDAS curve. As such the plotted curves are identical to traditional VWAP assuming the initiation is from the candle/bar midpoint.
How did Levine intend the curves to be drawn?
On a reversal, he suggested the initiation of the Support and Resistance VVWAP (S/R curve) to be started after a reversal.
It is clear in his examples this happens occasionally but in many cases he initiates the so-called MIDAS S/R VWAP right at the reversal point. In any case, the algorithm is problematic if you wish to start a curve on the first bar of an IPO .
You will get nothing. That is a pain. Also in Levine's writings, he describes simply clicking on the point where a
S/R VWAP is to be drawn from. As such, the generally accepted method of initiating the curve at N-1 is a practical and sensible method. The only issue is that you cannot draw the curve from the first bar on any security, as mentioned without resorting to the typical VWAP algorithm. There is another difference. VWAP is launched from the middle of the bar (as per AlphaTrends), You can also launch from the top of the bar or the bottom (or anywhere for that matter). The calculation proceeds using the top or bottom for each new bar.
The potential applications are discussed in the MIDAS Technical Analysis book.






















